// es6 模块话 导包
// 解构运算符
import { createCrawl } from "x-crawl";
import { getComleteion } from "./openai.mjs";


// 实例化爬虫应用
const cralwApp = createCrawl({
    maxRetry: 3,
    intervalTime: {
        max: 3000,
        min: 1000
    }
})

let highlyHTML = null;
// 使用 cralwApp 实例爬取指定 URL 的页面
cralwApp.crawlPage('https://movie.douban.com/chart')
    // 处理爬取结果的 Promise
    .then(async (res) => {
        // 从响应数据中提取页面和浏览器实例
        const {
            page,
            browser
        } = res.data;
        // 定义目标选择器，用于定位页面中的特定元素
        const targetSelector = '.indent';
        // 等待页面中的目标选择器出现
        await page.waitForSelector(targetSelector);
        // 使用 $eval 方法获取目标选择器对应的元素的 innerHTML
        highlyHTML = await page.$eval(
            targetSelector,
            (el) => el.innerHTML
        )


        // 关闭浏览器实例
        const prompt =     `
        根据 ${highlyHTML} html内容，
        获取图片链接、电影名称、电影评分、电影简介
        输出格式为json 数组。
        如：
        [
            {
            "src": "...",
            "title": "...",
            "score": "...",
            "desc": "..."
            }
        ]

        ` 
        const ans = await getComleteion(prompt)

        console.log(highlyHTML);

        console.log(ans);

        await browser.close();

    })



